import type { CartItem } from "@/types/cart"
import { http } from "@/utils/http"

/**
 * 加入购物车
 * @param data 请求体参数
 * @returns
 */
export const postMemberCartAPI = (data: { skuId: string, count: number }) => {
    return http({
        method: 'POST',
        url: '/member/cart',
        data,
    })
}

/**
 * 获取购物车列表
 * @param
 * @returns
 */
export const getMemberCartAPI = () => {
    return http<CartItem[]>({
        method: 'GET',
        url: '/member/cart'
    })
}

/**
 * 删除/清空购物车单品
 * @param data 请求体参数 ids:skuId集合
 * @returns
 */
export const deleteMemberCartAPI = (data: { ids: string[] }) => {
    return http<CartItem[]>({
        method: 'DELETE',
        url: '/member/cart',
        data,
    })
}

/**
 * 修改购物车单品
 * @param skuId skuId 
 * @param data selected：选中状态 count：商品数量
 * @returns
 */
export const putMemberCartBySkuIdAPI = (skuId: string, data: { selected?: boolean, count?: number }) => {
    return http({
        method: 'PUT',
        url: `/member/cart/${skuId}`,
        data,
    })
}

/**
 * 购物车全选/取消全选
 * @param  
 * @returns
 */
export const putMemberCartSelectedAPI = (data: { selected: boolean }) => {
    return http({
        method: 'PUT',
        url: '/member/cart/selected',
        data,
    })
}